New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More

gccs

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gccs

Vanilla Node.js script to compile JS code/files using Google Closure Compiler Service (zero dependencies)


Version published
Weekly downloads
5
increased by66.67%
Maintainers
1
Weekly downloads
 
Created

gccs == google-closure-compliler-service Build Status npm version

Vanilla Node.js script to compile JS code using Google's Closure Compiler Service (zero dependencies).

Install

You can install gccs either as a global CLI script or per project.

# global
npm i -g gccs

# in project
npm i gccs

Usage

Actually, there is no real need to install it if you have npx (default with npm@5.2.0 and up). Just call it with npx gccs input.js

CLI

# Show CLI help
gccs --help

# Compile input.js and save output as input.min.js
gccs input.js

# Compile input.js to output.min.js
gccs input.js output.min.js

# Output compiled JS to console (stdout)
gccs input.js -

# With options. When https == false, it might be faster. Other options go to GCC service
gccs --https false --compilation_level WHITESPACE_ONLY --formatting pretty_print -- input.es6.js output.es5.js

# Pipe
cat input.js | gccs
cat input.js | gccs - output.min.js

# Compile a node.js CLI script (gccs preserves shebang of my-cli.js)
gccs my-cli.js my-cli && chmod +x my-cli

# Compile a node.js CLI script and add shebang
# Note: Use this when my-cli.js doesn't already contain the shebang
(echo '#!/usr/bin/env node' && gccs my-cli.js -) > my-cli && chmod +x my-cli
package.json

For a small JS/ES6 library gccs could be sufficient as a build script. Here is an example of build command for package.json of verup library:

...
"scripts": {
  "es5": "gccs --compilation_level WHITESPACE_ONLY --formatting pretty_print -- verup.js dist/verup.js",
  "min": "gccs --compilation_level SIMPLE_OPTIMIZATIONS -- dist/verup.js dist/verup.min.js",
  "build": "npm run es5 && npm run min"
  ...
}
...

This build command would produce the ES5 version of verup.js at dist/verup.js and the minified ES5 version at dist/verup.min.js. Isn't that cool? :-)

Node module

const gccs = require("gccs");

// Compile some JS as a string
var js_code = "var my = 'owesome'; // script";
gccs(js_code, function (error, minjs) {
    if ( error ) return console.error(error);
    console.log(minjs); // minified js_code
});

// Compile string JS with some options
gccs({js_code: js_code, compilation_level: 'WHITESPACE_ONLY'}, function (error, minjs) {
    if ( error ) return console.error(error);
    console.log(minjs); // js_code w/o whitespaces
});

// Compile a JS file
gccs.file('input.js', function (error, minjs) {
    if ( error ) return console.error(error);
    console.log(minjs); // minified contents of 'input.js'
})

// Compile a JS file and output to console (stdout)
gccs.file('input.js', '-', function (error, minjs) {})
// or
gccs.file('input.js', process.stdout, function (error, minjs) {})


// Compile a JS file (stream in)
var _in = fs.createReadStream('input.js');
gccs(_in, function (error, minjs) {
    if ( error ) return console.error(error);
    console.log(minjs); // minified contents of 'input.js'
});

// Compile a JS file and save output to another file (stream in and out)
var _in = fs.createReadStream('input.js');
var _out = fs.createWriteStream('output.min.js');
gccs.file(_in, _out, function (error) {})

FAQs

Package last updated on 27 Jun 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts